package com.example.calendar.di

import com.example.calendar.data.repository.CategoryRepository
import com.example.calendar.data.repository.CategoryRepositoryImpl
import com.example.calendar.data.repository.EventRepository
import com.example.calendar.data.repository.EventRepositoryImpl
import com.example.calendar.data.repository.TaskRepository
import com.example.calendar.data.repository.TaskRepositoryImpl
import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import javax.inject.Singleton

@Module
@InstallIn(SingletonComponent::class)
abstract class RepositoryModule {

    @Binds
    @Singleton
    abstract fun bindEventRepository(
        eventRepositoryImpl: EventRepositoryImpl
    ): EventRepository

    @Binds
    @Singleton
    abstract fun bindTaskRepository(
        taskRepositoryImpl: TaskRepositoryImpl
    ): TaskRepository

    @Binds
    @Singleton
    abstract fun bindCategoryRepository(
        categoryRepositoryImpl: CategoryRepositoryImpl
    ): CategoryRepository
} 